package com.snack.common.configuration;

import org.apache.commons.configuration.PropertiesConfiguration;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;

/**
 * 提供读取config.properties配置文件，获取各种值的方法。
 * Copyright: Copyright (c) 2008/07/21 3:39:21 PM
 * Company: 北京宽连十方数字技术有限公司
 * Author: chengyao
 * Version: 1.0
 */
public class BaseConfiguration {
	protected static final Log logger = LogFactory.getLog(BaseConfiguration.class);
	protected static final PropertiesConfiguration config = PropertiesFactory.getPropertiesConfiguration("config.properties");

	/**
	 * 用指定的键在此属性文件中搜索属性。如果未找到属性，则此方法返回 空字符。
	 * @param key 属性键。
	 * @return 属性文件中具有指定键值的值。
	 * @throws org.apache.commons.configuration.ConversionException - 如果找到的Object不是一个String。
	 */
	protected static String getVal(String key) {
		return getVal(key, "");
	}

	/**
	 * 用指定的键在此属性文件中搜索属性。如果未找到属性，则此方法返回默认值变量。
	 * @param key 属性键。
	 * @param defaultValue 默认值。
	 * @return 属性文件中具有指定键值的值，如果找不到返回默认值。
	 * @throws org.apache.commons.configuration.ConversionException - 如果找到的Object不是一个String。
	 */
	protected static String getVal(String key, String defaultValue) {
		return config.getString(key, defaultValue);
	}

	/**
	 * 得到指定键对应的字符串数组属性。
	 * 如果未找到属性，则返回一个空的数组。
	 * @param key 属性键。
	 * @return 属性文件中具有指定键值的值数组，如果找不到返回空数组。
	 * @throws org.apache.commons.configuration.ConversionException - 如果找到的Object不是一个String或者String List。
	 * @see org.apache.commons.configuration.AbstractConfiguration#getStringArray(String)
	 */
	protected static String[] getVals(String key) {
		return config.getStringArray(key);
	}
}